package com.jfs.qy.entity.response;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;

/**
 * @Description 机非人告警数组
 * @E-mail cwm3412638@163.com
 * @Author cwm
 * @Date 2022/11/4
 */
@Data
public class ObjectAlarm implements Serializable {
    /**
     * 机非人图片
     */
    @JSONField(name = "SnapObjectImg")
    private String snapObjectImg;
    /**
     * 机非人背景图片
     */
    @JSONField(name = "SnapBgImg")
    private String snapBgImg;
    /**
     * 机非人告警类型
     * “HumanBody”为目标整体告警类型，
     * “Vehicle”为机动车告警类型，
     * “NoneVehicle”为非机动车告警类型
     */
    @JSONField(name = "ObjectType")
    private String objectType;
    /**
     * 前端IPC抓拍时图片的Id，32位无符号整型
     */
    @JSONField(name = "SnapId")
    private Integer snapId;
    /**
     * 抓拍时间，2018-10-25 13:08:36，Unix时间戳
     */
    @JSONField(name = "StartTime")
    private Long startTime;
    /**
     * 抓拍时间，2018-10-25 13:08:36，Unix时间戳
     */
    @JSONField(name = "EndTime")
    private Long endTime;
    /**
     * 抓拍的通道
     */
    @JSONField(name = "SnapChn")
    private Integer snapChn;
    /**
     * 车辆所在背景图的区域
     *ObjectType类型为机动车类型时，才有该字段
     */
    @JSONField(name = "CarRect")
    private CarRect carRect;

    /**
     * 车牌所在背景图的区域
     * ObjectType类型为机动车类型时，才有该字段
     */
    @JSONField(name = "PlateRect")
    private PlateRect plateRect;
    /**
     * 车牌号
     * ObjectType类型为机动车类型时，才有该字段
     */
    @JSONField(name = "LicensePlate")
    private String licensePlate;
    /**
     * 车辆品牌
     * ObjectType类型为机动车类型时，才有该字段
     */
    @JSONField(name = "CarPreBrand")
    private String carPreBrand;

    /**
     * 车辆子款
     * ObjectType类型为机动车类型时，才有该字段
     */
    @JSONField(name = "CarSubBrand")
    private String carSubBrand;
    /**
     * 车辆年款
     * ObjectType类型为机动车类型时，才有该字段
     */
    @JSONField(name = "CarYearBrand")
    private String carYearBrand;
    /**
     * 车辆品牌ID
     * 0-0xffffffff
     * ObjectType类型为机动车类型时，才有该字段
     * 车辆品牌Id,由摄像机返回，具体对应类型，根据摄像机提供的对应表格查询
     */
    @JSONField(name = "CarPreBrandId")
    private Integer carPreBrandId;
    /**
     * 车辆子款ID
     * 0-0xffffffff
     * ObjectType类型为机动车类型时，才有该字段
     * 车辆子款Id,由摄像机返回，具体对应类型，根据摄像机提供的对应表格查询
     */
    @JSONField(name = "CarSubBrandId")
    private Integer carSubBrandId;

    /**
     * 车辆类型
     * ObjectType类型为机动车类型时，才有该字段
     * 车辆子款Id,由摄像机返回，具体对应类型，根据摄像机提供的对应表格查询
     * 对应PU_VEHICLE_TYPE_E枚举，最大值为PU_VLPR_VT_MOTOR
     */
    @JSONField(name = "CarType")
    private Integer carType;
    /**
     * 车身颜色
     * ObjectType类型为机动车类型时，才有该字段。
     * 对应PU_VEHICLE_COLOR_E枚举
     */
    @JSONField(name = "CarColor")
    private Integer carColor;

    /**
     * 车牌类型
     * ObjectType类型为机动车类型时，才有该字段。
     * 对应PU_PLATE_TYPE_E枚举，最大值目前允许为PU_VLPR_LPT_AIRPORT
     */
    @JSONField(name = "PlateType")
    private Integer plateType;
    /**
     * 车牌颜色
     * ObjectType类型为机动车类型时，才有该字段。
     * 对应PU_PLATE_COLOR_E枚举
     */
    @JSONField(name = "PlateColor")
    private Integer plateColor;

    /**
     * 非机动车所在背景图的区域
     * ObjectType类型为机动车类型时，才有该字段。
     * Table-14.1.1.1
     */
    @JSONField(name = "NonVehicleBgRect")
    private NonVehicleBgRect nonVehicleBgRect;

    /**
     * 目标整体所在背景图的区域
     * ObjectType类型为机动车类型时，才有该字段。
     * Table-14.1.1.1
     */
    @JSONField(name = "HumanBgRect")
    private HumanBgRect humanBgRect;

    /**
     * 目标整体所在抓拍图片的区域
     * ObjectType类型为机动车类型时，才有该字段。
     * Table-14.1.1.1
     */
    @JSONField(name = "HumanImgRect")
    private HumanImgRect humanImgRect;
}
